Chapter 7 - Compatibility

This chapter describes the differences between the Tachyon 390 Cross Assembler and the IBM High Level Assembler. There may be other differences between these assemblers that are not listed in these chapters. The Tachyon 390 Cross Assembler was designed to be highly compatible with the documented behavior of the IBM assemblers, but was written without reference to the actual design and code of the IBM assemblers. Therefore it is quite possible that assembler language programs that rely on the undocumented behavior of the IBM assemblers will not assemble identically with the Tachyon 390 Cross Assembler. No guarantee of compatibility is provided.


Language Differences

All of the assembly language statements supported by releases 1 and 2 of the IBM High Level Assembler are identically supported by the Tachyon 390 Cross Assembler, except for the following:

*PROCESS

This statement is not supported, however some of the function of the *PROCESS statement is available through the EXEC X390 statement.

CATTR, SETAF, SETCF

These statements, added in release 2 of the IBM High Level Assembler are not supported.

ISEQ

The ISEQ instruction is accepted and properly sets the &SYSSEQF system variable symbol correctly, but does not activate sequence number checking.

MHELP

The MHELP instruction is accepted, but not all of the options produce exactly the same output as those supported by the IBM assemblers.

REPRO

The statement following a REPRO instruction is not assigned its own statement number, but is instead treated as a continuation of the REPRO statement.

Assembler Options

Most of the options supported by releases 1 and 2 of the IBM High Level Assembler are supported in some form by the Tachyon 390 Cross Assembler. The differences are:

ADATA

The ADATA option is not supported.

COMPAT

The assembler always runs as if NOCOMPAT was specified for full compatibility with the High Level Assembler.

DBCS

The DBCS option is not supported and the assembler does not recognize DBCS data nor G-type constants and self-defining terms.

EXIT

No exits are supported by the assembler, except for LIBEXIT which is different from the High Level Assembler exit of the same name.

NOASA

NOASA is an alias for the NOPRINTCTL option. It does not generate machine printer control characters.

OPTABLE

The assembler includes the vector operation codes only in the OPTABLE(UNI) table, not the ESA, XA, and 370 tables. Also, the DOS table includes the ECPS:VSE instructions and all of the assembler operation codes.

PESTOP

The assembler always runs as if PESTOP was specified.

PROFILE

The PROFILE option is not supported.

TERM

The WIDE and NARROW parameters of the TERM option are not supported.

TRANSLATE

The TRANSLATE option is not supported.

USING

The High Level Assembler’s USING(LIMIT(xxx)) and USING(MAP) options are available though this assembler’s USINGLIMIT and USINGMAP options. The High Level Assembler’s USING(WARN(n)) options is available through this assembler’s FLAG option as follows: USING(WARN(1)) may be specified as FLAG(USINGDUP). USING(WARN(2)) may be specified as FLAG(USINGZERO). USING(WARN(4)) may be specified as FLAG(USINGMULT). USING(WARN(8)) may be specified through the USINGLIMIT option.

XOBJECT

The XOBJECT option is not supported.

System Variables

The following system variable symbols are defined somewhat differently by the Tachyon 390 Cross Assembler than by the IBM High Level Assembler.

&SYSASM

&SYSASM is set to 'TACHYON 390 CROSS ASSEMBLER'.

&SYSIN_DSN

&SYSIN_DSN is set to the path name of the source file or to '(STDIN)' if the source is being read from stdin.

&SYSIN_MEMBER

&SYSIN_MEMBER is set to the upper-cased part of the source file name between the last directory separator and the first period. It is set to a zero-length string if the source is being read from stdin.

&SYSJOB

&SYSJOB is set from the workstation’s node name (or the HOSTNAME environment variable in OS/2). If not available, &SYSJOB is set to '(NOJOB)'.

&SYSLIB_DSN

&SYSLIB_DSN is set to the path name of the file containing the macro definition.

&SYSLIB_MEMBER

&SYSLIB_MEMBER is set to the upper-cased macro name if it was implicity defined. If the macro was explicitly defined, &SYSLIB_MEMBER is set to the value of &SYSIN_MEMBER at the time of the definition.

&SYSLIN_DSN

&SYSLIN_DSN is set to the Object File name if the OBJECT(OMF) option is set.

&SYSLIN_MEMBER

&SYSLIN_MEMBER is set to the upper-cased part of the Object File name between the last directory separator and the first period.

&SYSPRINT_DSN

&SYSPRINT_DSN is set to the Assembly Listing file name if the LIST option is set.

&SYSPRINT_MEMBER

&SYSPRINT_MEMBER is set to the upper-cased part of the Assembly Listing file name between the last directory separator and the first period.

&SYSPUNCH_DSN

&SYSPUNCH_DSN is set to the Punch Deck file name if the DECK option is set.

&SYSPUNCH_MEMBER

&SYSPUNCH_MEMBER is set to the upper-cased part of the Punch Deck file name between the last directory separator and the first period.

&SYSSTEP

&SYSSTEP is set to the current user ID. If not available, &SYSSTEP is set to '(NOSTEP)'.

&SYSTEM_ID

&SYSTEM_ID is set from the SYSTEMID option value or its default.

&SYSTERM_DSN

&SYSTERM_DSN is set to theAssembly Messages file name if the TERM option is set. If the NOSYSTERM option was specified, &SYSTERM_DSN is set to '(STDOUT)'.

&SYSTERM_MEMBER

&SYSTERM_MEMBER is set to the upper-cased part of the Assembly Messages file name between the last directory separator and the first period.

Implementation Differences

There are a few other differences between the Tachyon 390 Cross Assembler and the IBM High Level Assembler, noted as follows:

External Symbols

The external name in the label field of the CSECT, COM, DSECT, DXD, RSECT and START instructions, the operands of the ENTRY, EXTRN and WXTRN instructions, and the nominal values of Q-type and V-type constants may be more than eight characters long if there is a valid associated ALIAS instruction.

Forward Length Resolution

The Tachyon 390 Cross Assembler and the IBM assemblers use different methods to resolve the lengths of data items that are depenentd on values defined later in the assembly. As a result there are a few cases where the IBM and Tachyon assemblers are able to resolve forward length references that the other assembler cannot.

Look-Ahead

The first definition encountered during look-ahead is used for the purposes of resolving the reference, even if the definition would not have been generated due to conditional assembly instructions.

Sequence Symbols

Sequence symbols in open code may only be referenced by AIF and AGO instructions in the same source file or copy member.

Symbol Names

The symbols printed in the cross reference and all literals generated in literal pools are printed in upper case, even if first defined in mixed or lower case.

Contents Introduction Setup Files Options Extensions Host Libraries Compatibility Messages
© Copyright 1995-1997, Tachyon Software® LLC.
Last modified on February 11, 1997